Advances in computer technology have made it economical for individual users to have their own computing system, which caused the proliferation of the Personal Computer (PC). Continued advances of this computer technology have made these personal computers very powerful but also complex and difficult to manage. For this and other reasons there is a desire in many workplace environments to separate the user interface devices, including the display and keyboard, from the application processing parts of the computing system. In this preferred configuration, the user interface devices are physically located at the desktop, while the processing and storage components of the computer are placed in a central location. The user interface devices are then connected to the processor and storage components with some method of communication.
One of the challenges with this approach relates to methods for providing users with multiple computer monitor configurations on their desktop with the identical user experience compared with multiple computer monitors connected to a local desktop computer system. These users include users in the financial services or CAD industries whose computers allow applications to spread across multiple displays from their local desktop computer.
The challenge with this configuration lies in the effective relay of images from multiple frame buffers at the data processing side of the system across the network to the desktop for display across multiple monitors at perceptually lossless image quality and within the latency limits of human perception.
Local computing platforms commonly use multiple frame buffers. As one example, Windows XP supports multiple local monitors to increase the active desktop area. As another example, gaming application use multiple frame buffers to enhance animated graphics. Less common methods for connecting multiple frame buffers to multiple remote monitors are described below.
One method for supporting multiple remote monitors connected to a data processor network by a standard network involves the copying of frame buffers from the data processor to the client equipment. One implementation of the frame buffer copy method is Virtual Network Computing (VNC). VNC uses a software driver on the data processor to read and compress the frame buffer on the data processor using delta buffer or other software-based compression methods. The compressed data is copied to the remote system using the Remote Frame Buffer protocol (RFB) on request by a client version of the VNC software which runs on the remote computer system. Some versions of VNC, such as the one provided by RealVNC support multiple displays by simultaneously connecting to different ports on the data processing system.
VNC has limited graphics support. While text and 2D graphics are drawn to a frame buffer in system memory, 3D graphics are usually handled by a GPU and not drawn to a frame buffer accessible to the VNC driver. This results in 3D windows left as blank areas on the client system. While one workaround is to use software to render 3D objects such as those drawn using 3D OpenGL, this approach is undesirable as it requires the data processor to perform drawing operations. VNC also effects data processing performance directly by sharing frame buffer access with the CPU and requiring CPU resources for data compression. Unlike VNC, which has limited 3D graphics support, VizServer™ from Silicon Graphics is a dedicated 3D rendering server which uses a multi-processing server to render and transmit display images to remote users. Using general purpose CPUs for the compression of frame buffers is inefficient. For example, it is recommended that several dedicated processors are added to a VizServer systems to support the compression and copy of the frame buffer.
Another method for forwarding display information to the remote displays is the graphic command transfer method. X-Windows is one product that uses this method in a UNIX environment. X-Windows forwards drawing commands to the client system and requires that the client system supports the rendering hardware to draw the image at the remote system. To reduce the bandwidth needed by X-Windows, Low-Bandwidth X (LBX) is a proxy module that compresses the command stream before transmission. A major problem with the X-based solution is the requirement for remote operating system and graphics hardware to support the display application. This increases the desktop equipment cost and maintenance overheads which defeats the original objective of separating the data processor from the user interface components.
A brute force approach to enabling a system with multiple monitors is to integrate multiple parallel Keyboard-Video-Mouse (KVM) systems in the data processor, each with a dedicated connection to a remote monitor. KVM systems that use dedicated CAT5 or fiber cabling have distance limitations, and are costly to install and maintain due to the non-standard infrastructure requirements. KVM over IP systems use either frame buffer copy or graphic command transfer methods to copy the display information to the remote monitors and consequently suffer similar limitations to those systems described above.
A related market that uses multiple remote displays is the emerging Head Mount Display (HMD) industry. A typical head mount display is comprised of dual micro-displays, each displaying one channel of a stereo image. In most existing systems, separate analog video signals are run directly from the processing environment; however in-line architectures that capture and compress DVI signals for Ethernet and wireless transmission to a remote HMD have recently been proposed.
In summary, existing software methods for transferring display information to individual remote clients with multiple monitors have limited capabilities, consume data processing resources and usually require a client software application to reformat the incoming display image to meet size and resolution requirements of the display area or even render the image based on transferred graphic commands. This requires complex and expensive client systems with relatively high maintenance requirements. Physical video cable extension techniques require additional cabling and have limited distance of operation.